namespace Pretorianie.Sangraal.Providers.Data
{
    /// <summary>
    /// Container of all file/folder attributes.
    /// </summary>
    public class FolderItemInfo
    {
        private string name;
        private string iconName;
        private long size;
        private string typeDescription;
        private string dateModified;
        private bool isFolder;
        private string fullName;
        private string extension;
        private string sizeString;

        #region Properties

        /// <summary>
        /// Gets the current name of the file or folder.
        /// </summary>
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }

        /// <summary>
        /// Gets or sets the name of a file that represents an icon.
        /// </summary>
        public string IconName
        {
            get
            {
                return iconName;
            }
            set
            {
                iconName = value;
            }
        }

        /// <summary>
        /// Gets or sets the size of file or folder.
        /// </summary>
        public long Size
        {
            get
            {
                return size;
            }
            set
            {
                size = value;
            }
        }

        /// <summary>
        /// Text description assigned for given file or folder.
        /// </summary>
        public string TypeDescription
        {
            get
            {
                return typeDescription;
            }
            set
            {
                typeDescription = value;
            }
        }

        /// <summary>
        /// Gets or sets date of last modification.
        /// </summary>
        public string DateModified
        {
            get
            {
                return dateModified;
            }
            set
            {
                dateModified = value;
            }
        }

        /// <summary>
        /// Distinguish between file and folder.
        /// </summary>
        public bool IsFolder
        {
            get
            {
                return isFolder;
            }
            set
            {
                isFolder = value;
            }
        }

        /// <summary>
        /// Gets or sets the full name of an element.
        /// </summary>
        public string FullName
        {
            get
            {
                return fullName;
            }
            set
            {
                fullName = value;
            }
        }

        /// <summary>
        /// Gets or sets the extension.
        /// </summary>
        public string Extension
        {
            get
            {
                return extension;
            }
            set
            {
                extension = value;
            }
        }

        /// <summary>
        /// Gets or sets the formatted size of file.
        /// </summary>
        public string SizeString
        {
            get
            {
                return sizeString;
            }
            set
            {
                sizeString = value;
            }
        }

        #endregion
    }
}